home *** CD-ROM | disk | FTP | other *** search
/ Aminet 21 / Aminet 21 (1997)(GTI - Schatztruhe)[!][Oct 1997].iso / Aminet / dev / misc / p96pcq.lha / Picasso96PCQ / Examples / BestModeID.p < prev    next >
Encoding:
Text File  |  1997-07-18  |  4.0 KB  |  114 lines

  1.  
  2. PROGRAM BestModeID;
  3.  
  4. {
  5.     PCQ-Version des Picasso96-Demoprogrammes
  6.  
  7.     in Pascal übersetzt von Andreas Neumann
  8. }
  9.  
  10.  
  11. { ***********************************************************************
  12.   * This is example shows how to use p96BestModeIDTagList()
  13.   *
  14.   * tabt (Mon Aug 28 14:07:40 1995)
  15.   ***********************************************************************   }
  16.  
  17. {$I "Include:exec/memory.i" }
  18. {$I "Include:exec/libraries.i" }
  19. {$I "Include:dos/RDArgs.i" }
  20. {$I "Include:graphics/modeid.i" }
  21. {$I "Include:graphics/graphics.i" }
  22. {$I "Include:utils/stringlib.i" }
  23. {$I "Include:p96/Picasso96.i" }
  24.  
  25. Const
  26.     gfxname     :   String  =   "graphics.library";
  27.     template    :   String  =    "Width=W/N,Height=H/N,Depth=D/N";
  28.     vecarray    :   Array[0..2] of Address = (Nil, Nil, Nil);
  29.  
  30.     fmtstrings  :   Array [1..(Ord(RGBFB_MaxFormats)-2)] OF String = (
  31.                                                                   "RGBFB_NONE",
  32.                                                                   "RGBFB_CLUT",
  33.                                                                   "RGBFB_R8G8B8",
  34.                                                                   "RGBFB_B8G8R8",
  35.                                                                   "RGBFB_R5G6B5PC",
  36.                                                                   "RGBFB_R5G5B5PC",
  37.                                                                   "RGBFB_A8R8G8B8",
  38.                                                                   "RGBFB_A8B8G8R8",
  39.                                                                   "RGBFB_R8G8B8A8",
  40.                                                                   "RGBFB_B8G8R8A8",
  41.                                                                   "RGBFB_R5G6B5",
  42.                                                                   "RGBFB_R5G5B5",
  43.                                                                   "RGBFB_B5G6R5PC",
  44.                                                                   "RGBFB_B5G5R5PC"
  45.                                                                  );
  46. Var
  47.         DisplayID,
  48.         width,
  49.         height,
  50.         depth       :   Integer;
  51.         args        :   Array [1..3] Of Array [0..80] Of Char;
  52.         ptags       :   Array [0..32] Of TagItem;
  53.         rda         :   RDArgsPtr;
  54.  
  55. Begin
  56.  GfxBase:=OpenLibrary (gfxname,0);
  57.  If GfxBase<>Nil Then
  58.  Begin
  59.   P96Base:=OpenLibrary (P96Name,2);
  60.   If P96Base<>Nil Then
  61.   Begin
  62.    width:=640;
  63.    height:=480;
  64.    depth:=24;
  65.  
  66.    rda:=ReadArgs (template,Adr(vecarray),Nil);
  67.    If rda<>Nil Then
  68.    Begin
  69.     If vecarray[0]<>NIL then CopyMem(vecarray[0],adr(width),4);
  70.     If vecarray[1]<>NIL then CopyMem(vecarray[1],adr(height),4);
  71.     If vecarray[2]<>NIL then CopyMem(vecarray[2],adr(depth),4);
  72.     FreeArgs(rda);
  73.    End;
  74.  
  75.    ptags[0].ti_Tag:=P96BIDTAG_NominalWidth;
  76.    ptags[0].ti_Data:=width;
  77.    ptags[1].ti_Tag:=P96BIDTAG_NominalHeight;
  78.    ptags[1].ti_Data:=height;
  79.    ptags[2].ti_Tag:=P96BIDTAG_Depth;
  80.    ptags[2].ti_Data:=depth;
  81.    ptags[3].ti_Tag:=P96BIDTAG_FormatsForbidden;
  82.    ptags[3].ti_Data:=(RGBFF_R5G5B5 or RGBFF_R5G5B5PC or RGBFF_B5G5R5PC);
  83.    ptags[4].ti_Tag:=TAG_DONE;
  84.  
  85.    DisplayID:=p96BestModeIDTagList(Adr(ptags));
  86.    If DisplayID>0 Then
  87.    Begin
  88.     Writeln ("DisplayID: ", DisplayID);
  89.     If DisplayID<>INVALID_ID Then
  90.     Begin
  91.      Writeln ("Width: ", p96GetModeIDAttr(DisplayID, P96IDA_WIDTH));
  92.      Writeln ("Height: ", p96GetModeIDAttr(DisplayID, P96IDA_HEIGHT));
  93.      Writeln ("Depth: ", p96GetModeIDAttr(DisplayID, P96IDA_DEPTH));
  94.      Writeln ("BytesPerPixel: ", p96GetModeIDAttr(DisplayID, P96IDA_BYTESPERPIXEL));
  95.      Writeln ("BitsPerPixel: ", p96GetModeIDAttr(DisplayID, P96IDA_BITSPERPIXEL));
  96.      Writeln ("RGBFormat: ", fmtstrings[p96GetModeIDAttr(DisplayID,P96IDA_RGBFORMAT)+1]);
  97.      If p96GetModeIDAttr(DisplayID, P96IDA_ISP96)<>0 Then
  98.       Writeln ("Is P96: yes")
  99.      Else
  100.       Writeln ("Is P96: no");
  101.     End;
  102.    End
  103.    Else
  104.     Writeln ("DisplayID is 0.");
  105.    CloseLibrary (P96Base);
  106.   End
  107.   Else
  108.    Writeln ("Unable to open Picasso96 library.");
  109.   CloseLibrary (GfxBase);
  110.  End;
  111.  
  112. End.
  113.  
  114.